5
תגובות
אהלן אני לומד כרגע java script באתר codecademy ובאחת השיעורים נתקעתי במשהו שלא הבנתי אם אפשר בבקשה עזרה
זה הקוד:
הקוד בעצם אמור לחפש את השם סטיב מתוך הרשימה ולהדפיס (console.log) רק את הפרטים של סטיב.
שזה מה שהוא עושה שאני עושה בדיקה.
העניין זה למה הוא מדפיס את הפרטים רק של סטיב ולא גם את של ביל.
הרי friends[prop] זה בעצם גם סטיב וגם ביל
זה הקוד:
var friends = new Object;
friends.bill = {
firstName: "Bill",
lastName: "Gates",
number: "(206) 555-5555",
address: ['One Microsoft Way','Redmond','WA','98052']
};
friends.steve = {
firstName: "Steve",
lastName: "Jobs",
number: "(408) 555-5555",
address: ['1 Infinite Loop','Cupertino','CA','95014']
};
var search = function(name) {
for(var prop in friends) {
if(friends[prop].firstName === name) {
console.log(friends[prop]);
return friends[prop];
};
};
};
search("Steve");
friends.bill = {
firstName: "Bill",
lastName: "Gates",
number: "(206) 555-5555",
address: ['One Microsoft Way','Redmond','WA','98052']
};
friends.steve = {
firstName: "Steve",
lastName: "Jobs",
number: "(408) 555-5555",
address: ['1 Infinite Loop','Cupertino','CA','95014']
};
var search = function(name) {
for(var prop in friends) {
if(friends[prop].firstName === name) {
console.log(friends[prop]);
return friends[prop];
};
};
};
search("Steve");
הקוד בעצם אמור לחפש את השם סטיב מתוך הרשימה ולהדפיס (console.log) רק את הפרטים של סטיב.
שזה מה שהוא עושה שאני עושה בדיקה.
העניין זה למה הוא מדפיס את הפרטים רק של סטיב ולא גם את של ביל.
הרי friends[prop] זה בעצם גם סטיב וגם ביל
5 תשובות
אתה לא מסתכל על זה בצורה הנכונה
for(var prop in friends) {
החלק הזה יוצר משתנה בשם prop שמייצג בסך key של friend ספציפי.
מה שהלולאה בעצם עושה זה לרוץ על כל ה friends ולבדוק לאיזה friend הערך שלו ב firstName הוא Steve.
אז נכון ש friends[prop] מייצג את שניהם אבל כאשר אנחנו ב prop של ביל אז כאשר אנחנו בודקים מה ה firstName שלו ומשווים לסטיב אנחנו מקבלים false ולכן אתה לא רואה שום דבר בקונסול,לעומת זאת בהרצה השנייה של הלולאה ה prop כבר מייצג את סטיב וכאשר משווים את ה firstName שלו אז מקבלים true.
תודה רבה! דרך אגב למה עושים את הסוגריים המרובעים דוגמת friends[prop].firstName
ולא friends.prop.firstName
זה בעיה משום ש prop הוא string והמנוע של js לא מצליח להבין מה אתה רוצה ממנו.
באותה מידה גם -
var name = 'steve'
console.log(friends.name);
console.log(friends.name);
לא יעבווד